/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.documentar.model;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Santos
 */
public class ColaboradorModel {

    private int codigo;
    private SetorModel setor;
    private char tipo;
    private String nome;
    private String email;
    private String senha;
    private char ativo;
    private String nomeTela;
    private RevendaModel revendaModel;

    public RevendaModel getRevendaModel() {
        if (revendaModel == null) {
            revendaModel = new RevendaModel();
        }
        return revendaModel;
    }

    public void setRevendaModel(RevendaModel revendaModel) {
        this.revendaModel = revendaModel;
    }

    public String getNomeTela() {
        return nomeTela;
    }

    public void setNomeTela(String nomeTela) {
        this.nomeTela = nomeTela;
    }

    public char getAtivo() {
        return ativo;
    }

    public void setAtivo(char ativo) {
        this.ativo = ativo;
    }

    /**
     * Ação do script SQL na execução do programa
     */
    private String actionScript;
    /**
     * Modelo de um comboBox para utiliza nas telas
     */
    private DefaultComboBoxModel modelComboBox;
    /**
     * Modelo de uma table para utilizar nas telas
     */
    private DefaultTableModel modelTable;
    /**
     * Lista contendo os dados relacionados da consulta feita na tabela setor.
     * Mas é necessário rever o nome dessa variável, sugestão: lista+Classe
     */
    private List<ColaboradorModel> listaColaborador;
    /**
     * Variavel responsável por recepcionar dados extraidos das consultas
     * executadas na banco de dados
     */
    private ResultSet resultSet;

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public SetorModel getSetor() {
        if (setor == null) {
            setor = new SetorModel();
        }
        return setor;
    }

    public void setSetor(SetorModel setor) {
        this.setor = setor;
    }

    public char getTipo() {
        return tipo;
    }

    public void setTipo(char tipo) {
        this.tipo = tipo;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public String getActionScript() {
        return actionScript;
    }

    public void setActionScript(String actionScript) {
        this.actionScript = actionScript;
    }

    public DefaultComboBoxModel getModelComboBox() {
        if (modelComboBox == null) {
            modelComboBox = new DefaultComboBoxModel();
            modelComboBox.addElement("ESCOLHER");
        }
        return modelComboBox;
    }

    public void setModelComboBox(DefaultComboBoxModel modelComboBox) {
        this.modelComboBox = modelComboBox;
    }

    public DefaultTableModel getModelTable() {
        if (modelTable == null) {
            modelTable = new DefaultTableModel();
            modelTable.addColumn("Codigo");
            modelTable.addColumn("Setor");
            modelTable.addColumn("Revenda");
            modelTable.addColumn("Tipo");
            modelTable.addColumn("Nome");
            modelTable.addColumn("E-mail");
            modelTable.addColumn("Senha");
            modelTable.addColumn("Ativo");
        }
        return modelTable;
    }

    public void setModelTable(DefaultTableModel modelTable) {
        this.modelTable = modelTable;
    }

    public List<ColaboradorModel> getListaColaborador() {
        if (listaColaborador == null) {
            listaColaborador = new ArrayList<>();
        }
        return listaColaborador;
    }

    public void setListaColaborador(List<ColaboradorModel> listaColaborador) {
        this.listaColaborador = listaColaborador;
    }

    public ResultSet getResultSet() {
        return resultSet;
    }

    public void setResultSet(ResultSet resultSet) {
        this.resultSet = resultSet;
    }

    /**
     * Metodo responsável por encontrar o cadastro do setor em uma lista
     *
     * @param codigo Codigo de identificação do setor
     * @return Modelo da Classe com o dado encontrado
     */
    public ColaboradorModel getColaborador(int codigo) {
        ColaboradorModel model = null;
        for (ColaboradorModel colaboradorModel : getListaColaborador()) {
            if (colaboradorModel.getCodigo() == codigo) {
                model = colaboradorModel;
                break;
            }
        }
        return model;
    }

}
